<template>
    <avue-form :option="option"
               v-model="form"
               @submit="onSubmit"></avue-form>
</template>
<script>
    import {FormMixin} from "@/mixins/FormMixin";

    export default {
        data() {
            return {
                option: {
                    column: [
                        {
                            label: '通知标题',
                            prop: 'title',
                            span: 24,
                            row: true,
                            search: true,
                            rules: [
                                {
                                    required: true,
                                    message: '请输入通知标题',
                                    trigger: 'blur',
                                },
                            ],
                        },
                        {
                            label: '通知类型',
                            type: 'select',
                            dicUrl: '/blade-system/dict/dictionary?code=notice',
                            props: {
                                label: 'dictValue',
                                value: 'dictKey',
                            },
                            dataType: 'number',
                            slot: true,
                            prop: 'category',
                            search: true,
                            rules: [
                                {
                                    required: true,
                                    message: '请输入通知类型',
                                    trigger: 'blur',
                                },
                            ],
                        },
                        {
                            label: '通知日期',
                            prop: 'releaseTime',
                            type: 'date',
                            format: 'YYYY-MM-DD HH:mm:ss',
                            valueFormat: 'YYYY-MM-DD HH:mm:ss',
                            rules: [
                                {
                                    required: true,
                                    message: '请输入通知日期',
                                    trigger: 'click',
                                },
                            ],
                        },
                        {
                            label: '通知内容',
                            prop: 'content',
                            component: 'avue-ueditor',
                            options: {
                                action: '/blade-resource/oss/endpoint/put-file',
                                props: {
                                    res: 'data',
                                    url: 'link',
                                },
                            },
                            hide: true,
                            minRows: 4,
                            span: 24,
                        },
                    ],
                },
                // 配置项
                formMixinConfig: {
                    // 对应的api目录下 js文件
                    api: "demo/demo_api", // == @/api/demo/demo_api.js
                    // 对应api中方法名称  默认与属性名相同
                    apiProps: {
                        submit: "submit",
                        getDetail: "getDetail",
                    },
                    // 启动自动加载详情 只针对默认模式
                    enabledAutoLoadDetail: true, // 为false时，需手动调用“onLoadDetail”
                    // 禁止使用默认 自动加载详情
                    disableLoadDetail: false, // 对应方法"onLoadDetail", 如果为true,可重写“onLoadDetail”方法,
                    // 禁止使用默认 提交
                    disableSubmit: false, // 对应方法"onSubmit", 如果为true,可重写“onSubmit”方法,
                },
            }
        },
        mixins: [FormMixin],
        methods: {
            /**
             * formMixinConfig 配置激活之前
             */
            configBefore() {
                this.formMixinConfig.disableLoadDetail = false
            },
            /**
             * 加载详情之前
             */
            detailBefore() {
                this.form.id = "1123598818738675223";
                console.log("detailBefore")
            },
            /**
             * 详情加载完成
             */
            detailAfter() {
                console.log("detailAfter")
            },
            /**
             *  详情加载错误
             */
            detailError(error) {
                console.log("detailError", error)
            },
            /**
             * 加载详情之前
             */
            submitBefore(form, done) {
                console.log("submitBefore")
                // 如果返回true, 终止执行
                // return true
            },
            /**
             * 详情加载完成
             */
            submitAfter() {
                console.log("submitAfter")
            },
            /**
             * 提交失败
             */
            submitError(error) {
                console.log("submitError", error)
            }
        }
    }
</script>